﻿/// 此JS应放在submit.js之后

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Ext.namespace('EHSubmit.Work.List');
//作业信息列表

//列模式
EHSubmit.Work.List.ColumnModel = new Ext.grid.ColumnModel([
    { header: 'ID', width: 80, sortable: false, locked: false,hidden:true, dataIndex: 'ID' },
    { header: '作业ID', width: 80, sortable: false, hidden: false, dataIndex: 'GoalID' },
    { header: '作业名', width: 150, sortable: true, dataIndex: 'GoalName' },
	{ header: '类型', width:40,sortable:true, hidden:false, renderer:EHSubmit.Format.goalTypeRenderer , dataIndex:'GoalType' },
    { header: '提交时间', width: 120, sortable: true, renderer: Ext.util.Format.dateRenderer('Y年m月d日'), dataIndex: 'SubmitTime' },
    { header: '最近更新', width: 120, sortable: true, renderer: Ext.util.Format.dateRenderer('Y年m月d日'), dataIndex: 'UpdateTime' },
    { header: '附件', width: 40, sortable: true, renderer: EHSubmit.Format.homeworkAttachRenderer, dataIndex: 'AttachPath' },
    { header: '说明', width:200, sortable: false, dataIndex: 'Description' },
    { header: '得分', width:40, sortable: true, renderer:EHSubmit.Format.scoreRenderer, dataIndex: 'Scores' },
    { header: '评论', sortable: false, dataIndex: 'Comment' }
]);

//数据源
EHSubmit.Work.List.Store = new Ext.data.Store({
    baseParams: { Op: 'list_stu'},      // 需要传递操作参数  sid学生的ID
    proxy: new Ext.data.HttpProxy({ url: EHSubmit.ajaxRoot + 'HomeworkHandler.ashx' }),  //后台具体处理

    reader: new Ext.data.JsonReader({
            totalProperty: 'count',    //总记录个数
            root: 'data',
            id: 'ID'
        },
        [   // 数据模型
            { name: 'ID' },
            { name: 'GoalID' },
            { name: 'GoalName' },
			{ name: 'GoalType' },
            { name: 'SubmitTime' },
            { name: 'UpdateTime' },
            { name: 'AttachPath'},
            { name: 'Description' },
            { name: 'Scores' },
            { name: 'Comment' }
    ]),
    listeners: {
        /// 加载异常处理
        exception: function(proxy, type, action, options, response){
            Ext.MessageBox.alert('数据加载错误!','请与管理员联系');
            
        }
    }
});

// 数据列表
EHSubmit.Work.List.Grid = {
    xtype: 'grid',
    id: 'ListHomeworkGrid',
    layout: 'fit',
    //autoHeight:true,
    height: 500,
    border: true,
    frame: true,
    loadMask: true,          // 加载数据时遮住
    autoExpandColumn: 8,     // 将最后一列宽度自动扩展
    cm: EHSubmit.Work.List.ColumnModel,
    ds: EHSubmit.Work.List.Store,
    sm: new Ext.grid.RowSelectionModel({
        singleSelect: true,              // 一次只选一个
        listeners: {
            /// 选中一个作业,在右边显示相关信息
            rowselect: function(sm, row, rec) {
                ///// 选中一项作业后，将选中的记录存在 EHSubmit.Work.List.selectedRecord中
                EHSubmit.Work.List.selectedRecord = rec;

            }
        }
    }),
    // 工具条
    tbar: [{                      //topbar个人理解
        text: '交作业',
        tooltip: '选择一项作业进行提交',
        iconCls: 'add',
        handler: function() {
            // 显示上传作业Tab页
            mainPanel.showTab(EHSubmit.Work.Submit.Tab);
        }
    }, '-', {
        text: '修改',
        tooltip: '修改选定的作业信息',
        iconCls: 'modify',
        handler: function() {
            // 没有选择作业
            if (!EHSubmit.Work.List.selectedRecord) {
                Ext.MessageBox.alert('提示', '请选择一项作业');
            } else {
                var score = EHSubmit.Work.List.selectedRecord.get('Scores');
                if (score > -1) {
                    Ext.MessageBox.alert('提示', '该状态不能被修改');
                    return;
                }

                //mainPanel.getEl().mask();
                EHSubmit.showWin(EHSubmit.Work.Modify.WinConfig);
                var form = Ext.getCmp('Modify_Work_Form');
                //赋值
                form.getForm().findField('workId').setValue(EHSubmit.Work.List.selectedRecord.get('ID'));
                form.getForm().findField('goalId').setValue(EHSubmit.Work.List.selectedRecord.get('GoalID'));
                form.getForm().findField('goalTitle').setValue(EHSubmit.Work.List.selectedRecord.get('GoalName'));
                form.getForm().findField('description').setValue(EHSubmit.Work.List.selectedRecord.get('Description'));

            }

        }
    }, '-', {
        text: '删除',
        tooltip: '删除选定的项',
        iconCls: 'remove',
        handler: function() {
            // 没有选择作业
            if (!EHSubmit.Work.List.selectedRecord) {
                Ext.MessageBox.alert('提示', '请选择一项作业');
            } else {
                //如果老师已批改，则该作业不能被删除
                var score = EHSubmit.Work.List.selectedRecord.get('Scores');
                if (score > -1) {
                    Ext.MessageBox.alert('提示', '该状态不能被删除');
                    return;
                }

                //选择作业后确认删除
                var id = EHSubmit.Work.List.selectedRecord.get('ID');
                var name = EHSubmit.Work.List.selectedRecord.get('GoalName');

                Ext.MessageBox.confirm('提示', '作业名：' + name + '<br/>确认要删除吗？', function(btn){
					//删除时的回调函数
					if (btn && btn == 'yes') {
                        Ext.Ajax.request({
                            url: EHSubmit.ajaxRoot + 'HomeworkHandler.ashx',
                            params: { op: 'delete', hid: id },

                            success: function(response, opts) {
                                var res = Ext.decode(response.responseText);

                                if (res.success) {
                                    //成功
                                    // 将grid的相应项删除
                                    EHSubmit.Work.List.Store.remove(EHSubmit.Work.List.Store.getById(id));
                                    Ext.MessageBox.alert('成功', res.msg);

                                }
                                else {
                                    //失败
                                    Ext.MessageBox.alert('错误信息', res.msg);
                                }
                            },
                            failure: function(response, opts) {
                                //var res = Ext.decode(response.responseText);
                                Ext.MessageBox.alert('发生错误', '请与管理员联系');
                                //Ext.MessageBox.alert('失败', res.msg);
                            }
                        });

                    } //if (btn &&
				});
                /*function del(btn) {
                    // 确认删除
                    if (btn && btn == 'yes') {
                        Ext.Ajax.request({
                            url: EHSubmit.ajaxRoot + 'HomeworkHandler.ashx',
                            params: { op: 'delete', hid: id },

                            success: function(response, opts) {
                                var res = Ext.decode(response.responseText);

                                if (res.success) {
                                    //成功
                                    // 将grid的相应项删除
                                    EHSubmit.Work.List.Store.remove(EHSubmit.Work.List.Store.getById(id));
                                    Ext.MessageBox.alert('成功', res.msg);

                                }
                                else {
                                    //失败
                                    Ext.MessageBox.alert('错误信息', res.msg);
                                }
                            },
                            failure: function(response, opts) {
                                //var res = Ext.decode(response.responseText);
                                Ext.MessageBox.alert('发生错误', '请与管理员联系');
                                //Ext.MessageBox.alert('失败', res.msg);
                            }
                        });

                    } //if (btn &&
                }  // function del()*/

            } // if (!EHSubmit.Work.

        }

        // Place a reference in the GridPanel  可能相当于一个标记
        //ref: '../topRemoveButton',
        //disabled: true
}],
        bbar: {
            xtype: 'paging',
            pageSize: 10,                 //只是起计算页数的作用，不影响表面,内部影响start 和 limit
            store: EHSubmit.Work.List.Store,
            displayInfo: true,
            displayMsg: '显示第 {0} 条到 {1} 条记录，一共 {2} 条',
            emptyMsg: '没有记录'

        },
        listeners: {
            render: function(thisGrid) {
                //----------请求单页数据-----------------
                thisGrid.store.load({ params: { start: 0, limit: 10} });
            },
            //        render: function(g) {
            //            g.getSelectionModel().selectRow(0);
            //        },
            delay: 10 // Allow rows to be rendered.
        }

    };

////////////////////////////////////////////////////////////////
EHSubmit.Work.List.Tab = {
    id:'homeworkList',
    title: '作业管理',
    bodyStyle: 'padding:5px;',
    closable:true,
    items: [EHSubmit.Work.List.Grid]
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Ext.namespace('EHSubmit.Work.Modify');
//修改作业Form
EHSubmit.Work.Modify.Form = {
    id: 'Modify_Work_Form',
    xtype: 'form',
    fileUpload: true,    // 上传Form
    labelAlign: 'left',
    autoHeight: true,
    buttonAlign: 'center',
    bodyStyle: 'padding:15px;',
    frame: true,
    border: false,
    labelWidth: 80,
    monitorValid: true,

    defaults: { anchor: '95%', msgTarget: 'side' },
    items: [
        { // 作业信息
            xtype: 'textfield',
            //            id: 'Modify_Cur_Title',
            name: 'goalTitle',
            allowBlank: false, 
            blankText: '作业名不能为空',
            fieldLabel: '作业信息'
        },
        { // 隐藏域,保存WID
            xtype: 'hidden',
            //            id: 'Modify_Cur_GID',
            name: 'workId'
        },
        { // 隐藏域,保存GID
            xtype: 'hidden',
            //            id: 'Modify_Cur_GID',
            name: 'goalId'
        },
        { // 文件上传
            xtype: 'fileuploadfield',
            //            id: 'uploader',
            emptyText: '若要更改文件，请选择一个文件上传；否则不选',
            fieldLabel: '文件',
            name: 'fileText',
                        
            //blankText: '请选择要上传的文件',
            buttonText: '浏览...'
            //            buttonCfg: {
            //                iconCls: 'upload-icon'
            //            }

        },
        { // 作业说明字段
            xtype: 'htmleditor',
            fieldLabel: '作业说明',
            //            id:'Modify_Cur_Des',
            emptyText: '这里填写作业说明',
            name: 'description',
            height: 150,
            enableAlignments: false,
            enableLists: false
            //value: 'test'
        }

    ],
    buttons: [
        {
            text: '修改',
            handler: function() {
                var frm = Ext.getCmp('Modify_Work_Form');
                if (frm.getForm().isValid()) {
                    frm.getForm().submit({     // 提交
                        url: EHSubmit.ajaxRoot + 'HomeworkHandler.ashx?op=update',
                        waitTitle: '等待',
                        waitMsg: '正在执行操作，请稍后...',
                        method: 'POST',
                        success: function(form, action) {
                            var successed = action.result.success;
                            if (successed) {
                                ///////////////  提交成功处理  ///////////////////
                                Ext.MessageBox.alert('提示', '修改成功！');
                                
                                // 修改成功，把grid里的数据更新
                                
                                // 关闭此窗口
                                EHSubmit.closeWin(EHSubmit.Work.Modify.WinConfig);
                                
                                //////////////////////////////////////////////////
                            }
                            else {
                                Ext.MessageBox.alert('失败', '信息：' + action.result.msg);
                            }
                        }, // success
                        failure: function(form, action) {
                            var errmsg = action.result.msg;
                            Ext.MessageBox.alert('错误', errmsg);
                        }   // failure  
                    }); //submit
                } /// if is Valid
            } // handler
        }, //'修改'
        {
            text: '取消',
            handler: function() {
                EHSubmit.closeWin(EHSubmit.Work.Modify.WinConfig);
            }
        }
    ]

}


//修改作业窗体

EHSubmit.Work.Modify.WinConfig = {
    id:'ModifyWorkWin',
    title: '修改作业',
    border:false,
    autoHeight: true,
    modal:true,
    items: [EHSubmit.Work.Modify.Form]
}